package main

/*
#include <stdio.h>

static int Add(int i, int j)
{
  int res = 0;
  __asm__ ("add %1, %2"
    : "=r" (res)
    : "r" (i), "0" (j)
  );
  return res;
}
*/
import "C"
import (
	"fmt"
)

// 汇编样式：
// asm ( assembler template
//          : output operands                  /* optional */
//          : input operands                   /* optional */
//          : list of clobbered registers      /* optional */
//          );
// 测试内联汇编: https://www.jianshu.com/p/1782e14a0766
// 不使用cgo，而是使用plan9，也就是Go支持的汇编语言回避cgo带来的缺点.
// 当然我们不是直接去写汇编，而是将C编译成汇编，然后再转化成plan9与.go代码一起编译.
func main() {
	r := C.Add(C.int(2022), C.int(18))
	fmt.Println(r)
}
